﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

using Controller; // Brug vores class library "Controller"
using Interfaces; // Brug vores class library "Interfaces"

namespace Sorts_F1
{
    public partial class FrmOpretMedlem : Form
    {
        // Attributter        
        ClsSystemController systemController;
        List<IClsPostBy> tempPostBy;
        
        public FrmOpretMedlem(ClsSystemController systemController) // Modtager controlleren fra start formen
        {
            InitializeComponent();
            this.systemController = systemController; // Istedet for at instansiere en ny controller bruger vi den der bliver sendt med
            this.MinimumSize = this.MaximumSize = this.Size; // Sørg for at formen altid er den nuværende størrelse
        }

        private void FrmOpretMedlem_Load(object sender, EventArgs e)
        {
            // Indlæs postnumre og bynavne
            tempPostBy = new List<IClsPostBy>();

            foreach (var item in systemController.VisPostBy())
            {
                tempPostBy.Add(item);
            }
        }

        private void btnTilbag_Click(object sender, EventArgs e)
        {
            this.Close(); // Lukker formen
        }

        private void btnOpretMedlem_Click(object sender, EventArgs e)
        {
            try
            {
                string navn = txtNavn.Text;
                string adresse = txtAdresse.Text;
                int postNr = int.Parse(txtPostNr.Text);
                string by = txtBy.Text;
                string eMail = txtEmail.Text;
                string password = txtPassword.Text;

                bool Controll = false;

                foreach (var item in tempPostBy)
                {
                    // Tjek om det indtaste postnummer i textboxen eksisterer på databasen
                    if (postNr == item.Postnr)
                    {
                        Controll = true;
                    }
                }

                if (Controll == false)
                {
                    // Hvis postnumret ikke allerede er i databasen bliver det oprettet der
                    systemController.UploadMedlemTilDBNytPostnummer(navn, eMail, adresse, by, postNr, password);
                }

                else
                {
                    // Hvis postnumret allerede er i databasen bliver dette postnummer brugt
                    systemController.UploadMedlemTilDBGammeltPostnummer(navn, eMail, adresse, postNr, password);
                }

                systemController.OpdaterMedlemFraDB(); // Download nye medlem data

                MessageBox.Show("Du har nu oprettet en bruger");

                this.Close(); // Luk formen når medlem er oprettet
            }

            catch
            {
                MessageBox.Show("Fejl ved registrerin");
            }
        }
    }
}
